﻿$(document).ready(function () {


    //La pagina solo contiene un modulo
    var _PAGE = function () {
        this._ManPostulantes = null;


        this.InitManPostulantes = function (Cont) {
            var _parent = this;

            //Vemos si existe el estado del postulante
            if (_parent._ManPostulantes == null) {
                jQuery.getScript(URL_PAGE + "Scripts/app/administrador/ManPostulantes.js", function () {
                    _ManPostulantes.prototype = new Mantenimiento();
                    _parent._ManPostulantes = new _ManPostulantes();
                    _parent.InitManPostulantes(Cont);
                });
            } else {
                var _Urls = Urls;
                _Urls.List = URL_PAGE + "Shared/Catalogo/ListaDePostulante";
                _parent._ManPostulantes.VistaLista = "ventas";


                _parent._ManPostulantes.EventoCambioConvocatoria = function (obj) {
                    var _parentManpostulante = this;
                    var contHerramientas = _parentManpostulante._getCont().find("#_OpcionesConvocatoria");
                    var option = obj.find("option[value='" + obj.val() + "']");
                    if (obj.val() != null) {
                        $.ajax({
                            url: URL_PAGE + "Shared/Administrador/MostrarOpcionesDeConvocatoria",
                            data: {
                                conv_codigo: obj.val(),
                                vista: "ventas"
                            },
                            type: "post",
                            success: function (data) {
                                contHerramientas.html(data);
                                contHerramientas.slideDown();
                                _parent.CargarEventosOpcionesConvocatoria();
                            }
                        });
                    } else {
                        contHerramientas.slideUp();
                    }
                }

                _parent._ManPostulantes.Init(Cont, _Urls, "Modal");
                _parent.InitFunction();
            }

        };

        this.CargarEventosOpcionesConvocatoria = function () {
        };

        this.InitFunction = function () {
            var _parent = this;
            _parent._ManPostulantes.Posponer = function () {
                var _parent = this;

                _parent._getContList().off('.posponer-postulacion, .desistir-postulacion');
                _parent._getContList().on('click', '.posponer-postulacion, .desistir-postulacion', function (e) {
                    e.preventDefault();
                    var obj = $(this);


                    var modal = _parent._getModalV2();

                    $.ajax({
                        type: "post",
                        url: URL_PAGE + "Administrador/Postulante/FormObservacionEstado",
                        data: {
                            IdPostulante: obj.attr("data-idpostulante"),
                            EstadoPostulante: obj.attr("data-estadopostulante")
                        },
                        success: function (html) {

                            var tituloModal = "";
                            var tituloConfirmacion = "";
                            var contenidoConfirmacion = "";
                            var tituloExito = "Postulacion";
                            var contenidoExito = "";

                            if (obj.attr("class") == "posponer-postulacion") {
                                tituloModal = "Posponer postulación";
                                tituloConfirmacion = "Posponer postulación";
                                contenidoConfirmacion = "¿Esta seguro de posponer esta postulación?";
                                tituloExito = "Postulación";
                                contenidoExito = "La operación se hizo con exito";
                            } else if (obj.attr("class") == "desistir-postulacion") {
                                tituloModal = "Desistir postulación";
                                tituloConfirmacion = "Desistir postulación";
                                contenidoConfirmacion = "¿Esta seguro de desistir esta postulación?";
                                tituloExito = "Postulación";
                                contenidoExito = "La operación se hizo con exito";
                            }

                            modal.modal('show');
                            modal.find(".modal-body").html(html);
                            modal.find(".modal-header").find("h2").html(tituloModal);

                            //Obteniendo el formulario
                            form = modal.find(".modal-body").find("#_Form");
                            modal.find(".modal-footer").find("#aceptar").click(function () {
                                console.log(form);
                                form.submit();
                            });

                            //Habilitando el formulario para el envio
                            form.validationEngine({
                                ajaxSubmit: true,
                                onValidationComplete: function (form1, status) {
                                    if (status) {
                                        var confirmacion = _parent._MensajeConfirmacion();
                                        confirmacion.titulo = tituloConfirmacion;
                                        confirmacion.contenido = contenidoConfirmacion;
                                        confirmacion.yes = function () {
                                            form.ajaxSubmit({
                                                success: function (responseText, statusText, xhr, $form) {

                                                    confirmacion.getModal.modal('hide');
                                                    _parent._MensajesOperacion("success",
                                                                        tituloExito,
                                                                        contenidoExito);
                                                    _parent.ListEspecial({ idregistro: obj.attr("data-idpostulante") });
                                                    modal.modal('hide');
                                                }
                                            });
                                        };
                                        confirmacion.modal();
                                    }
                                }
                            });

                        }
                    });
                });
            }

            _parent._ManPostulantes.Eliminar = function () {
                var _parent = this;

                _parent._getContList().off('.eliminar-postulacion');
                _parent._getContList().on('click', '.eliminar-postulacion', function (e) {
                    e.preventDefault();
                    var obj = $(this);

                    var confirmacion = _parent._MensajeConfirmacion();
                    confirmacion.titulo = "Eliminar postulación";
                    confirmacion.contenido = "¿Esta seguro de eliminar esta postulación?";
                    confirmacion.yes = function () {
                        jQuery.post(URL_PAGE + "Administrador/Postulante/EliminarPostulacion",
                                         {
                                             IdPostulante: obj.attr('data-IdPostulante')
                                         },
                             function (data) {

                                 confirmacion.getModal.modal('hide');
                                 _parent._MensajesOperacion("success",
                                                    "Postulacion",
                                                    "La postulación se eliminó correctamente");
                                 _parent.ListEspecial({ idregistro: data.idregistro });

                             }
                   , "json");
                    };
                    confirmacion.modal();
                });
            }

            _parent._ManPostulantes.Posponer();
            _parent._ManPostulantes.Eliminar();
        }
    };

    var page = new _PAGE();
    page.InitManPostulantes($("#_Postulante"));
});
